package com.kvn.dubbo.spi;

import com.alibaba.dubbo.common.Constants;
import com.alibaba.dubbo.common.URL;
import com.alibaba.dubbo.common.extension.ExtensionLoader;
import com.alibaba.dubbo.rpc.Filter;

import java.util.List;

/**
 * Created by Administrator on 2020/2/6 0006.
 */
public class ActivateSPITest {

    public static void main(String[] args) {
        URL url = URL.valueOf("dubbo://localhost/test");
//        url = url.addParameter("reference.filter", "activelimit"); // 默认将指定激活的 spi 扩展放在尾部（与 group 无关）
//        url = url.addParameter("reference.filter", "activelimit,default"); // 通过设置 default ，将指定激活的 spi 扩展放在头部
//        url = url.addParameter("reference.filter", "accesslog"); // 默认将指定激活的 spi 扩展放在尾部
//        url = url.addParameter("reference.filter", "accesslog,-monitor"); // 通过 "-" 来删除 group 中激活的 spi 扩展
//        url = url.addParameter("cache", "xx"); // 满足 group，并且 url key 中存在 @Activate 注解中 value 的值，则激活该 spi 扩展
        List<Filter> activateFilters = ExtensionLoader.getExtensionLoader(Filter.class).getActivateExtension(url, "reference.filter", "consumer");
        activateFilters.forEach(System.err::println);
    }

}
